[INFO] fetching crate las 0.7.1...
[INFO] checking las-0.7.1 against master#cfbc6d4cf1acbac5c025acf8ed68929caa551df3 for pr-75494-beta
[INFO] extracting crate las 0.7.1 into /workspace/builds/worker-7/source
[INFO] validating manifest of crates.io crate las 0.7.1 on toolchain cfbc6d4cf1acbac5c025acf8ed68929caa551df3
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate las 0.7.1
[INFO] finished tweaking crates.io crate las 0.7.1
[INFO] tweaked toml for crates.io crate las 0.7.1 written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate crates.io crate las 0.7.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded laz v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e63ded103cfa454e61b562652a00f96c7a2008b003b91485d9cbd9a8bb934735
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "e63ded103cfa454e61b562652a00f96c7a2008b003b91485d9cbd9a8bb934735", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e63ded103cfa454e61b562652a00f96c7a2008b003b91485d9cbd9a8bb934735", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e63ded103cfa454e61b562652a00f96c7a2008b003b91485d9cbd9a8bb934735", kill_on_drop: false }`
[INFO] [stdout] e63ded103cfa454e61b562652a00f96c7a2008b003b91485d9cbd9a8bb934735
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c9a0356b2d8029d35b49694cf3d7d3d513765b655f0bcb92b0c34264a08b9adc
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "c9a0356b2d8029d35b49694cf3d7d3d513765b655f0bcb92b0c34264a08b9adc", kill_on_drop: false }`
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]     Checking uuid v0.8.1
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-rational v0.2.3
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-iter v0.1.40
[INFO] [stderr]     Checking log v0.4.8
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking chrono v0.4.7
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking las v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]    --> src/header/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout] 64  | / quick_error! {
[INFO] [stdout] 65  | |     /// Header-specific errors.
[INFO] [stdout] 66  | |     #[derive(Clone, Copy, Debug)]
[INFO] [stdout] 67  | |     pub enum Error {
[INFO] [stdout] ...   |
[INFO] [stdout] 122 | |     }
[INFO] [stdout] 123 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]    --> src/header/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout] 64  | / quick_error! {
[INFO] [stdout] 65  | |     /// Header-specific errors.
[INFO] [stdout] 66  | |     #[derive(Clone, Copy, Debug)]
[INFO] [stdout] 67  | |     pub enum Error {
[INFO] [stdout] ...   |
[INFO] [stdout] 122 | |     }
[INFO] [stdout] 123 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/point/mod.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | / quick_error! {
[INFO] [stdout] 28 | |     /// Point-specific errors
[INFO] [stdout] 29 | |     #[derive(Debug, Clone, Copy)]
[INFO] [stdout] 30 | |     pub enum Error {
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |     }
[INFO] [stdout] 63 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/point/mod.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | / quick_error! {
[INFO] [stdout] 28 | |     /// Point-specific errors
[INFO] [stdout] 29 | |     #[derive(Debug, Clone, Copy)]
[INFO] [stdout] 30 | |     pub enum Error {
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |     }
[INFO] [stdout] 63 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/writer.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / quick_error! {
[INFO] [stdout] 46 | |     /// Writer errors.
[INFO] [stdout] 47 | |     #[derive(Debug)]
[INFO] [stdout] 48 | |     pub enum Error {
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/writer.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / quick_error! {
[INFO] [stdout] 46 | |     /// Writer errors.
[INFO] [stdout] 47 | |     #[derive(Debug)]
[INFO] [stdout] 48 | |     pub enum Error {
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] {"reason":"compiler-message","package_id":"las 0.7.1 (path+file:///opt/rustwide/workdir)","target":{"kind":["lib"],"crate_types":["lib"],"name":"las","src_path":"/opt/rustwide/workdir/src/lib.rs","edition":"2015","doctest":true},"message":{"message":"use of deprecated item 'std::error::Error::description': use the Display impl or to_string()","code":{"code":"deprecated","explanation":null},"level":"warning","spans":[{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":25467,"byte_end":25499,"line_start":737,"line_end":737,"column_start":29,"column_end":61,"is_primary":true,"text":[{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":29,"highlight_end":61}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":25204,"byte_end":25293,"line_start":729,"line_end":731,"column_start":9,"column_end":27,"is_primary":false,"text":[{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":9,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":25204,"byte_end":25293,"line_start":729,"line_end":731,"column_start":9,"column_end":27,"is_primary":false,"text":[{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":9,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":22489,"byte_end":22619,"line_start":655,"line_end":657,"column_start":46,"column_end":48,"is_primary":false,"text":[{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":46,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":48}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":12566,"byte_end":12701,"line_start":423,"line_end":425,"column_start":9,"column_end":17,"is_primary":false,"text":[{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":9,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8949,"byte_end":9061,"line_start":312,"line_end":314,"column_start":9,"column_end":36,"is_primary":false,"text":[{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":9,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/error.rs","byte_start":90,"byte_end":3683,"line_start":5,"line_end":104,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"quick_error! {","highlight_start":1,"highlight_end":15},{"text":"    /// Crate-specific error enum.","highlight_start":1,"highlight_end":35},{"text":"    #[derive(Debug)]","highlight_start":1,"highlight_end":21},{"text":"    pub enum Error {","highlight_start":1,"highlight_end":21},{"text":"        /// Feature is not supported by version.","highlight_start":1,"highlight_end":49},{"text":"        Feature(version: Version, feature: &'static str) {","highlight_start":1,"highlight_end":59},{"text":"            description(\"feature is not supported by version\")","highlight_start":1,"highlight_end":63},{"text":"            display(\"feature {} is not supported by version {}\", feature, version)","highlight_start":1,"highlight_end":83},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// A wrapper around `las::header::Error`.","highlight_start":1,"highlight_end":51},{"text":"        Header(err: header::Error) {","highlight_start":1,"highlight_end":37},{"text":"            from()","highlight_start":1,"highlight_end":19},{"text":"            cause(err)","highlight_start":1,"highlight_end":23},{"text":"            description(\"las header error\")","highlight_start":1,"highlight_end":44},{"text":"            display(\"header error: {}\", err)","highlight_start":1,"highlight_end":45},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// The value can't have the inverse transform applied.","highlight_start":1,"highlight_end":64},{"text":"        InverseTransform(n: f64, transform: Transform) {","highlight_start":1,"highlight_end":57},{"text":"            description(\"cannot apply inverse transform\")","highlight_start":1,"highlight_end":58},{"text":"            display(\"the transform {} cannot be inversely applied to {}\", transform, n)","highlight_start":1,"highlight_end":88},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// Wrapper around `std::io::Error`.","highlight_start":1,"highlight_end":45},{"text":"        Io(err: io::Error) {","highlight_start":1,"highlight_end":29},{"text":"            from()","highlight_start":1,"highlight_end":19},{"text":"            cause(err)","highlight_start":1,"highlight_end":23},{"text":"            description(err.description())","highlight_start":1,"highlight_end":43},{"text":"            display(\"io error: {}\", err)","highlight_start":1,"highlight_end":41},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// The las data is laszip compressed.","highlight_start":1,"highlight_end":47},{"text":"        Laszip {","highlight_start":1,"highlight_end":17},{"text":"            description(\"the las data is laszip compressed, and laszip compression is not supported by this build\")","highlight_start":1,"highlight_end":116},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// This string is not ASCII.","highlight_start":1,"highlight_end":38},{"text":"        NotAscii(s: String) {","highlight_start":1,"highlight_end":30},{"text":"            description(\"the string is not an ascii string\")","highlight_start":1,"highlight_end":61},{"text":"            display(\"this string is not ascii: {}\", s)","highlight_start":1,"highlight_end":55},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// These bytes are not zero-filled.","highlight_start":1,"highlight_end":45},{"text":"        NotZeroFilled(bytes: Vec<u8>) {","highlight_start":1,"highlight_end":40},{"text":"            description(\"the bytes are not zero filled\")","highlight_start":1,"highlight_end":57},{"text":"            display(\"the bytes are not zero filled: {:?}\", bytes)","highlight_start":1,"highlight_end":66},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// Wrapper around `las::point::Error`.","highlight_start":1,"highlight_end":48},{"text":"        Point(err: point::Error) {","highlight_start":1,"highlight_end":35},{"text":"            from()","highlight_start":1,"highlight_end":19},{"text":"            cause(err)","highlight_start":1,"highlight_end":23},{"text":"            description(\"point error\")","highlight_start":1,"highlight_end":39},{"text":"            display(\"point error: {}\", err)","highlight_start":1,"highlight_end":44},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// Wrapper around `las::reader::Error`.","highlight_start":1,"highlight_end":49},{"text":"        Reader(err: reader::Error) {","highlight_start":1,"highlight_end":37},{"text":"            from()","highlight_start":1,"highlight_end":19},{"text":"            cause(err)","highlight_start":1,"highlight_end":23},{"text":"            description(\"reader error\")","highlight_start":1,"highlight_end":40},{"text":"            display(\"reader error: {}\", err)","highlight_start":1,"highlight_end":45},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// This string is too long for the target slice.","highlight_start":1,"highlight_end":58},{"text":"        StringTooLong(s: String, len: usize) {","highlight_start":1,"highlight_end":47},{"text":"            description(\"the string is too long for the target slice\")","highlight_start":1,"highlight_end":71},{"text":"            display(\"string is too long for a slice of length {}: {}\", len, s)","highlight_start":1,"highlight_end":79},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// Wrapper around `std::str::Utf8Error`.","highlight_start":1,"highlight_end":50},{"text":"        Utf8(err: str::Utf8Error) {","highlight_start":1,"highlight_end":36},{"text":"            from()","highlight_start":1,"highlight_end":19},{"text":"            cause(err)","highlight_start":1,"highlight_end":23},{"text":"            description(err.description())","highlight_start":1,"highlight_end":43},{"text":"            display(\"utf8 error: {}\", err)","highlight_start":1,"highlight_end":43},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// Wrapper around `las::writer::Error`.","highlight_start":1,"highlight_end":49},{"text":"        Writer(err: writer::Error) {","highlight_start":1,"highlight_end":37},{"text":"            from()","highlight_start":1,"highlight_end":19},{"text":"            cause(err)","highlight_start":1,"highlight_end":23},{"text":"            description(\"writer error\")","highlight_start":1,"highlight_end":40},{"text":"            display(\"writer error: {}\", err)","highlight_start":1,"highlight_end":45},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        /// Wrapper around `las::vlr::Error`.","highlight_start":1,"highlight_end":46},{"text":"        Vlr(err: vlr::Error) {","highlight_start":1,"highlight_end":31},{"text":"            from()","highlight_start":1,"highlight_end":19},{"text":"            cause(err)","highlight_start":1,"highlight_end":23},{"text":"            description(\"vlr error\")","highlight_start":1,"highlight_end":37},{"text":"            display(\"vlr error: {}\", err)","highlight_start":1,"highlight_end":42},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        /// Wrapper around `laz::LasZipError`","highlight_start":1,"highlight_end":46},{"text":"        #[cfg(feature = \"laz\")]","highlight_start":1,"highlight_end":32},{"text":"        LasZipError(err: laz::LasZipError) {","highlight_start":1,"highlight_end":45},{"text":"            description(\"Error related to LAZ\")","highlight_start":1,"highlight_end":48},{"text":"            display(\"LasZipError: {}\", err)","highlight_start":1,"highlight_end":44},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        /// The Laszip vlr was not found, the points cannot be decompressed","highlight_start":1,"highlight_end":76},{"text":"        #[cfg(feature = \"laz\")]","highlight_start":1,"highlight_end":32},{"text":"        LasZipVlrNotFound {","highlight_start":1,"highlight_end":28},{"text":"            description(\"Expected a Laszip vlr to decompress points, but none was found\")","highlight_start":1,"highlight_end":90},{"text":"            display(\"Expected a Laszip vlr to decompress points, but none was found\")","highlight_start":1,"highlight_end":86},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    }","highlight_start":1,"highlight_end":6},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (   $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"        enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":"        quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":"            items [] buf []","highlight_start":1,"highlight_end":28},{"text":"            queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (","highlight_start":1,"highlight_end":6},{"text":"        WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":"        $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":"            fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":"                $strname(err)","highlight_start":1,"highlight_end":30},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"        impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                self.0.description()","highlight_start":1,"highlight_end":37},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                self.0.cause()","highlight_start":1,"highlight_end":31},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":"    (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [ ]","highlight_start":1,"highlight_end":16},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":"            body []","highlight_start":1,"highlight_end":20},{"text":"            queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":"                      => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":"           $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":"           )*});","highlight_start":1,"highlight_end":17},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":"            buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":"                     $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":"            items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":"                      => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":"                     $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":"            buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":"            queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":"        queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":"            buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                      $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"                 => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":"        queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":"            queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":"    (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":"        items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":"                  => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":"                                {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":"        buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":"            => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":"            items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":"                     $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":"            buf [ ]","highlight_start":1,"highlight_end":20},{"text":"            queue [ ]);","highlight_start":1,"highlight_end":24},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":"    (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        pub enum $name {","highlight_start":1,"highlight_end":25},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":"    (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [ ]","highlight_start":1,"highlight_end":18},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":"        enum $name {","highlight_start":1,"highlight_end":21},{"text":"            $(","highlight_start":1,"highlight_end":15},{"text":"                $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":"                $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":"            )*","highlight_start":1,"highlight_end":15},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Unit variant","highlight_start":1,"highlight_end":20},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Tuple variant","highlight_start":1,"highlight_end":21},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // Struct variant","highlight_start":1,"highlight_end":22},{"text":"    (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":"        body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":"            => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":"        queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":"            => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":"            body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":"                    $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":"            queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":"        $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":"            $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":"        )*}","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":"                -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":"                                $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":"                                {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":"                            display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":"        #[allow(unknown_lints)]  // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":"        #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":"        #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":"        #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":"        impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":"            fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":"                                $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":"                match *self {","highlight_start":1,"highlight_end":30},{"text":"                    $(","highlight_start":1,"highlight_end":23},{"text":"                        $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":"                        quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":"                            $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":"                        ) => {","highlight_start":1,"highlight_end":31},{"text":"                            quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":"                                $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":"                                {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":"                        }","highlight_start":1,"highlight_end":26},{"text":"                    )*","highlight_start":1,"highlight_end":23},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":"                $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":"                {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":"            write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $expr","highlight_start":1,"highlight_end":14},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":"            $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":"            {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        stringify!($item)","highlight_start":1,"highlight_end":26},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        Some($expr)","highlight_start":1,"highlight_end":20},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":"            $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":"            { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":"        [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        None","highlight_start":1,"highlight_end":13},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":"                fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":"                    $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":"        [ ]","highlight_start":1,"highlight_end":12},{"text":"        { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":"                $name::$item","highlight_start":1,"highlight_end":29},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: UNIT [  ]","highlight_start":1,"highlight_end":35},{"text":"            {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":"            fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<T, $ftyp>)","highlight_start":1,"highlight_end":74},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<T: AsRef<$ctyp>> From<$crate::Context<T, $ftyp>> for $name {","highlight_start":1,"highlight_end":74},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":"            -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":"            fn from(","highlight_start":1,"highlight_end":21},{"text":"                $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":"                -> $name","highlight_start":1,"highlight_end":25},{"text":"            {","highlight_start":1,"highlight_end":14},{"text":"                $name::$item {","highlight_start":1,"highlight_end":31},{"text":"                    $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":"            $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":"            {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"        { }","highlight_start":1,"highlight_end":12},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":"    ) => { };","highlight_start":1,"highlight_end":14},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":"        [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":"        [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item","highlight_start":1,"highlight_end":21},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":"        [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":"    // anything else.","highlight_start":1,"highlight_end":22},{"text":"    // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":"    // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":"    (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":"    => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"    (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":"        -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":"    => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":"    (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":"        -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":"    => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":"    // Utility functions","highlight_start":1,"highlight_end":25},{"text":"    (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/error.rs:5:1\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m5\u001b[0m\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m/\u001b[0m\u001b[0m \u001b[0m\u001b[0mquick_error! {\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m6\u001b[0m\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    /// Crate-specific error enum.\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m7\u001b[0m\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    #[derive(Debug)]\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m8\u001b[0m\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pub enum Error {\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m103\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    }\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m104\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m}\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|_^\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)\u001b[0m\n\n"}}
[WARN] too much data in the log, truncating it
